<!DOCTYPE html>

<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one or more
  ~ contributor license agreements.  See the NOTICE file distributed with
  ~ this work for additional information regarding copyright ownership.
  ~ The ASF licenses this file to You under the Apache License, Version 2.0
  ~ (the "License"); you may not use this file except in compliance with
  ~ the License.  You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<html>

    <head>
        <title>Github Login in progress ...</title>
        <link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
        <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
        <script type="text/javascript" src="js/login.js"></script>

        <script> 
             var executed = false;
            (document.onready = function () {
                if(executed) {
                  return;
                }
                executed = true;
                
                <!-- getting query params -->
                <!-- -->
                var match,
                    pl     = /\+/g,  // Regex for replacing addition symbol with a space
                    search = /([^&=]+)=?([^&]*)/g,
                    decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
                    query  = window.location.search.substring(1);

                var urlParams = {};
                while (match = search.exec(query))
                   urlParams[decode(match[1])] = decode(match[2]);
                
                if(getCookie("initialState") != urlParams["state"]) {
                    window.alert("CSRF attack!");
                    return;
                }

                if(!urlParams["code"]) {
                    window.alert("Access denied!");
                    return;
                }
                
                var formData = {};
                formData.code = urlParams["code"];
                formData.state = urlParams["state"];
                formData.provider = "github";
                formData.grant_type = "third_party";

                <!-- send code to backgroupd processing -->
                 $.ajax({
                    type: 'POST',
                    url: "/v1/token",
                    data: formData,
                    success: function (data) {
                        console.log(JSON.stringify(data));
                        window.localStorage.setItem("token", JSON.stringify(data));
                        window.location = "/ui/admin/operation.html";
                    },
                    error: function(data) {
                        console.log(JSON.stringify(data));
                        var error = document.getElementById("error");
                        error.textContent="Login failed";
                        error.hidden=false;
                    },
                    async: true
                });
            })();
        </script>
    </head>

    <body>

    <div class="header">
        <h2>Login With Github</h2>
    </div>
    <div class="section">
        <form method="POST" enctype="multipart/form-data">
            <input type="button" value="Login With Github" onclick="loginWithGithubAction()">
        </form>
    </div>
    <div class="footer">
        <p id="error" hidden="true" class="error"/>
    </div>
    </body>

</html>


